(function($) {
	function getV(rd, index) {
		var cd = rd;
		var h = index.indexOf(".");
		if (h == -1) {
			return cd[index]+""==='0' ? '0' : cd[index] || "";
		} else {
			var g = index.split(".");
			for (var i=0,l=g.length; i<l; i++) {
				cd = cd[g[i]]+""==='0' ? '0' : cd[g[i]] || [];
			}
			return $.isArray(cd) && cd.length==0 ? "" : cd;
		}
	}
	function getRV(o) {
		return !o || o == '' || o.length == 0 ? "''" : "'"+o+"'";
	}
	function getDisplayRow(p) {
		var data = p.data || [];
		if (p.locData) {
			if (data.length > p.limit) {
				var start = p.page*p.limit-p.limit;
				var end = start + p.limit > data.length ? data.length : start + p.limit;
				return data.slice(start, end);
			} else 
				return data;
		} else {
			if (data.length > p.limit) {
				var start = p.page*p.limit-p.limit;
				var end = start + p.limit > data.length ? data.length : start + p.limit;
				return data.slice(start, end);
			} else 
				return data;
		}
	}
	function getRI(p, ci) {
		var pi = p.locData ? parseInt(p.page*p.limit-p.limit+ci) : parseInt(ci);
		return pi > p.data.length ? -1 : pi;
	}
	function getAI(p, ci) {
		ci = !!ci ? ci : isNaN(ci) ? p.limit : 0;
		var pi = p.locData ? parseInt(p.page*p.limit-p.limit+ci) : parseInt(ci);
		return pi > p.data.length ? p.data.length : pi;
	}
	function getPx(px, tt) {
		if (!px) return "";
		if ((px+"").match(/^\d+(px)?$/)==null)return px;
		return !!px ? tt+((px+"").indexOf("px")==-1 ? px+"px;" : px+";") : "";
	}
	$.fn.extend({
		datagrid : function(cfg, mp) {
			if (typeof cfg == "string") {
				mp = $.isArray(mp) ? mp : [mp]; 
				return $.fn.datagrid.method[cfg].apply(this, mp);
			}
			if (!$(this).data("datagrid")) {
				$(this).data("datagrid", {})
			}
			var d = $(this).data("datagrid") ? $(this).data("datagrid").options || {} : {};
			var p = $.extend({}, $.fn.datagrid.defaults, /*d,*/ cfg);
			p.id = $(this).attr("id");
			$(this).data("datagrid").options = p;
			$(this).datagrid.init.onLoad(this, p);
		}, reload : function(config) {
			$.fn.datagrid.method.reload.call(this, config);
		}, refresh : function() {
			$.fn.datagrid.method.refresh.call(this);
		}, search : function(queryParm) {
			$.fn.datagrid.method.search.call(this, queryParm);
		}, removeRow : function(index) {
			$.fn.datagrid.method.removeRow.call(this, index);
		}, removeRows : function(rows) {
			$.fn.datagrid.method.removeRows.call(this, rows);
		}, getSelectRow : function() {
			return $.fn.datagrid.method.getSelectRow.call(this);
		}, getSelectRows : function() {
			return $.fn.datagrid.method.getSelectRows.call(this);
		}, addRow : function(rd, index) {
			return $.fn.datagrid.method.addRow.call(this, rd, index);
		}, getOption : function(option) {
			return $.fn.datagrid.method.getOption.call(this, option);
		}
	})
	$.fn.datagrid.method = {
		reload : function(config) {//不刷新查询条件，重新加载页面
			$.extend($(this).data("datagrid").options, config);
			$(this).data("datagrid").options.delRows = [];
			$.fn.datagrid.init.onLoad(this, $(this).data("datagrid").options);
		}, search : function(queryParm) {//刷查询条件，重新加载页面
			var p = $(this).data("datagrid").options;
			p.queryParm = queryParm;
			p.page = 1;
			p.delRows = [];
			$.fn.datagrid.init.onLoad(this, p);
		}, refresh : function() {//静态刷新页面
			$.fn.datagrid.init.onLoad(this, $(this).data("datagrid").options, true);
		}, removeRow : function(rowNum, rd, f) {
			var d = $(this).data("datagrid").options.data;
			if (!!rd) {
				rowNum = $.inArray(rd, d);
				if (rowNum == -1) return;
			}
			$(this).data("datagrid").options.data.splice(getRI($(this).data("datagrid").options, rowNum), 1);
			//$(this).data("datagrid").options.total--;
			if (!f) this.refresh();
		}, removeRows : function(rows) {
			var rs = rows || [];
			var d = $(this).data("datagrid").options.data;
			var p = $(this).data("datagrid").options;
			for (var i = 0, len = rs.length; i < len; i++) {
				var rowNum = $.inArray(rs[i], d);
				if (rowNum == -1) return;
				d.splice(getRI(p, rowNum), 1);
				//p.total--;
			}
			this.refresh();
		}, removeAllRows : function() {
			var dr = $(this).data("datagrid").options.data = [];
			this.refresh();
		}, addRow : function(rd, idx, f) {
			$.fn.datagrid.method.addRows.call(this, [rd], idx);
		}, addRows : function(rds, idx) {
			$.fn.datagrid.method.insertData.call(this, rds, idx);
			this.refresh();
		}, addRowsInPage : function(rds, idx) {
			$.fn.datagrid.method.insertData.call(this, rds, idx);
			$.fn.datagrid.init.onLoadInPage(this, $(this).data("datagrid").options);
		}, insertData : function(rds, idx) {
			idx = getAI($(this).data("datagrid").options, idx);
			rds = $.isArray(rds) ? rds : [rds];
			var data = $(this).data("datagrid").options.data;
			$.each(rds, function(i, value) {
				value.datagrid_row_add = true;
			})
			var b = data.slice(0, idx);
			var c = data.slice(idx);
			$(this).data("datagrid").options.data = $.merge($.merge(b, rds), c);
			//$(this).data("datagrid").options.data = $.merge($.merge([], rds), $(this).data("datagrid").options.data);
			$(this).data("datagrid").options.totalRows = $(this).data("datagrid").options.total+rds.length;
		}, getSelectRow : function() {
			var p = $(this).data("datagrid").options;
			var d = p.data;
			if (!d || d.length == 0) return null;
			var f = p.mulSelect;
			var _idx = f ? -1 : $(this).find("tr[datagrid-row-selected=selected]").attr("datagrid-row-index");
			var rd = $(this).data("datagrid").options.data[getRI($(this).data("datagrid").options, _idx)];
			return rd;
		}, getSelectRows : function() {
			var p = $(this).data("datagrid").options;
			var d = p.data;
			if (!d || d.length == 0) return [];
			var f = $(this).data("datagrid").options.mulSelect;
			if (!f) {
				return [this.getSelectRow()];
			} else {
				var rs = [];
				$(this).find("tr[datagrid-row-selected=selected]").each(function(){
					rs[rs.length] = d[getRI(p, $(this).attr("datagrid-row-index"))];
				});
				return rs;
			}
		}, upRow : function(index) {
			if (index == 0) return;
			var ri = getRI($(this).data("datagrid").options, index);
			var data = $(this).data("datagrid").options.data;
			var temp = data[ri];
			data[ri] = data[ri-1];
			data[ri-1] = temp;
			this.refresh();
		}, downRow : function(index) {
			var p = $(this).data("datagrid").options;
			if (index == p.limit-1 || index == getDisplayRow(p).length-1) return;
			var ri = getRI(p, index);
			var data = p.data;
			var temp = data[ri];
			data[ri] = data[ri+1];
			data[ri+1] = temp;
			this.refresh();
		}, getTotal : function() {
			return $(this).data("datagrid").options.data.length;
		}, getRows : function(idx) {
			var rs = [];
			var p = $(this).data("datagrid").options;
			var d = p.data;
			if (!d || d.length == 0) return null;
			if (typeof idx == "string") {
				if (idx.match(/^ALL$/i)!=null) {
					$(this).find("tr").each(function(){
						rs[rs.length] = d[getRI(p, $(this).attr("datagrid-row-index"))];
					});
				} else if((idx+"").match(/^\d+$/)!=null) {
					$(this).find("tr[datagrid-row-index='"+idx+"']").each(function(){
						rs[rs.length] = d[getRI(p, $(this).attr("datagrid-row-index"))];
					});
				} 
			} else if($.isArray(idx)) {
				$.each(idx, function(i,v){
					rs[rs.length] = d[getRI(p, v)];
				})
			}
			return rs;
		}, getAddRows : function() {
			var rs = [];
			var p = $(this).data("datagrid").options;
			var d = p.data;
			$(this).find("tr[datagrid-row-add='y']").each(function(){
				rs[rs.length] = d[getRI(p, $(this).attr("datagrid-row-index"))];
			});
			return rs;
		}, getUpdatedRows : function() {
			var rs = [];
			var p = $(this).data("datagrid").options;
			var d = p.data;
			$(this).find("tr[datagrid-row-update='y']").each(function(){
				rs[rs.length] = d[getRI(p, $(this).attr("datagrid-row-index"))];
			});
			return rs;
		}, getOption : function(ps) {
			return $(this).data("datagrid").options[ps];
		}, getTr : function(idx) {
			return $(this).find("tr[datagrid-row-index='"+idx+"']");
		}, getChkVal : function(rn, cn) {
			var tr = $.fn.datagrid.method.getTr.call(this, rn);
			var chk = $(tr).find("input[type='checkbox'][datagrid-cell-chk='chkcell'][datagrid-col-index='"+cn+"']");
			return chk.is(":checked");
		}
	}
	$.fn.datagrid.init = {
		//t:table p:parm d:data rd:rowData
		onLoad : function (t, p, rf) {
			var _t = this;
			if (!!p.url && !rf) {
				var parm = $.extend({},p.queryParm,{page: p.page, limit: p.limit})
				if (!p.loadStatus) {
					this.onLoading(true, t, p);
				}
				 $.ajax({
		                type: "POST",
		                url: p.url,
		                data: parm,
		                contentType: "application/x-www-form-urlencoded",
		                dataType: "json",
		                success: function(result) {
		                	if(typeof(result)=="string"){
								result=eval("("+result+")");
							}
							if (result.ret >= 0) {
								p.data = result.data;
								p.total = result.total;
								p.locData = false;
								_t.initGrid(t, p)
							}
		                },
		                error: function(x, y, z) {
		                    alert(x.responseText);
		                }
		            });
				
			} else 
				_t.initGrid(t,p);
		}, onLoadInPage : function(t, p, rf) {
			p.loadInPage = true;
			this.initGrid(t, p);
		}, initGrid : function (t, p) {
			if (!p.loadStatus) {
				this.onLoading(true, t, p);
			}
			p.onPreGridInit.call(this, t, p);
			$(t).empty();
			var th = this.initThead(t, p);
			var d = p.loadInPage ? p.data : getDisplayRow(p);
			this.initTbody(t, p, d)
			if (!!p.pager) 
				this.initPager(t, p);
			th.insertBefore($(t).parent());
			this.initEvent(t, p);
			this.adjustGrid(t, p, th);
			p.onPostGridInit.call(this, t, p);
			this.onLoading(false, t, p);
		}, initThead : function (t, p) {
			var tb = $(t).attr("id") + "_title";
			var td = $(t).attr("id") + "_title_div";
			if (!!$("#"+td) && $("#"+td).length == 1) 
				return $("#"+td);
			if (!!p.colNames && p.colNames.length > 0) {
				$("#"+td).remove();
				var th = $(t).clone();
				$(th).attr("id", tb);
				$(th).wrap("<div style='border:0px;margin:0px;padding:0px;' id='"+td+"'></div>");
				var head = [];
				head.push("<thead><tr>")
				if (p.showNum) 
					head.push("<th style='width:15px;text-align:center;border-left:1px solid #CCC' type='showNum'>&nbsp;</th>");
				if (p.mulSelect) 
					head.push("<th style='width:30px;text-align:center;' type='mulSelect'><input type='checkbox' id='chkall'></th>")
				for (var i=0, l=p.colNames.length; i<l; i++) {
					head.push("<th type='col' datagrid-col-index='"+i+"' style=''>");
					head.push(p.colNames[i]);
					head.push("</th>")
				}
				head.push("</tr></thead>");
				$(th).append(head.join(""));
				return $(th).parent();
			}
		}, initTbody : function (t, p, d) {
			var tbody = ["<tbody>"]
			if (!!d && d.length > 0) {
				for ( var i=0, l=d.length; i < l; i++) {
					var ia = d[i]["datagrid_row_add"] ? " datagrid-row-add='y'" : "";
					d[i]._idx = i;
					tbody.push("<tr datagrid-row-index='"+i+"'"+ia+">")
					if (p.showNum)
						tbody.push("<td style='width:15px;text-align:center;' type='showNum'>"+(i+1)+"</td>");
					if (p.mulSelect) 
						tbody.push("<td style='width:30px;text-align:center;' type='mulSelect'><input type='checkbox' datagrid-row-chk='chkrow'/></td>");
					tbody.push(this.initCell(t,p,d[i],i));
					tbody.push("</tr>")
				}
			} else {
				var l = !!p.colNames ? p.colNames.length : 0;
				l = p.showNum ? l+1 : l;
				l = p.mulSelect ? l+1 : l;
				tbody.push("<tr><td style='border:none;' colspan='"+l+"'><p class=''><em>对不起，暂无数据</em></p></td></tr>")
			}
			tbody.push("</tbody>");
			$(t).append(tbody.join(""))
			var tbn = $(t).attr("id") + "_div";
			if (!!$("#"+tbn) && $("#"+tbn).length > 0)
				return;
			$(t).wrap("<div style='border:solid 1px #d5d5d5;margin:0px;padding:0px;overflow:auto;"+getPx(p.height, "height:")+"' id='"+tbn+"'></div>");
			this.initHiddenEle(t, p);
		}, initHiddenEle : function(t, p) {
			var ldn = $(t).attr("id")+"_loading";
			if ($("#"+ldn).length == 0) {
				var ld = $("<div id='"+ldn+"'/>").html(p.loadingHtml).addClass(p.loadingClass).css({
					position: 'absolute',		
					zIndex: '1000'
				}).insertBefore(t.parent()).hide();
				$("<span style='display:none' id='"+$(t).attr("id")+"_testscharw'></span>").insertAfter(ld);
				//$("<div id='"+$(t).attr("id")+"_no_data_div' style='text-align:center;margin-top:0px;height:100%;'>无数据</div>").insertAfter(t).hide();
			}
			
		}, initCell : function(t, p, rd, rnum) {
			var cm = p.colModel;
			var col = [];
			for (var i=0, l=!!cm?cm.length:0; i<l; i++) {
				var m = cm[i];
				var w = !!m.type && m.type == 'checkbox' ? "width:30px;" : "";
				var dw = getPx(m.width, "width:")
				w = dw || w;
				var tal = !!m.align ? "text-align:"+m.align+";" : "";
				tal = !!m.type && m.type == 'checkbox' ? "text-align:center;" : tal;
				col.push("<td style='word-break:break-all;"+w+tal+"' datagrid-col-index='"+i+"' type='col'>");
				var cv = getV(rd, m.index);
				if (!!m.type && m.type == 'checkbox') {
					col.push(this.initCheckbox(t, p, cv, rd, m, i));
				} else if (!!m.type && m.type == 'date') {
					if (!!cv) {
						var cdt = new Date(cv);
						col.push(cdt.getFullYear()+"-"+(cdt.getMonth()+1)+"-"+cdt.getDate());
					}
				} else {
					if (m.renderer) {
						var re = m.renderer.call(this, cv, rd, {table:t,options:p,colIndex:i,colModel:m});
						if (!!re || re === "" || re === null) 
							col.push(re);
						else 
							col.push(cv);
					} else 
						col.push(cv);
				}
				col.push("</td>")
			}
			return col.join("")
		}, initCheckbox : function(t, p, cv, rd, m, ci) {
			var chktxt = [];
			chktxt.push("<input type='checkbox' datagrid-cell-chk='chkcell' datagrid-col-index='"+ci+"'");
			var chked = "";
			if (m.renderer) {
				var re = m.renderer.call(this, cv, rd, {table:t,options:p,colIndex:ci,colModel:m});
				chked = !!re ? " checked " : "";
			} else 
				chked = !!cv ? " checked " : "";
			chktxt.push(chked);
			var disabled = m.disabled;
			if (typeof m.disabled == 'function') {
				disabled = m.disabled.call(this, cv, rd, {table:t,options:p,colIndex:ci,colModel:m});
			}
			chktxt.push(disabled ? " disabled " : "");
			chktxt.push("/>");
			return chktxt.join("");
		}, initEvent : function(t, p) {
			var _t = $(t);
			var rows = _t.find("tr");
			rows.hover(function(){
				if (!$(this).attr("datagrid-row-selected"))
					$(this).addClass("tr_hov");
				}, function(){
					if (!$(this).attr("datagrid-row-selected"))
						$(this).removeClass("tr_hov");
				})
			rows.click(function(){
				var selected = $(this).attr("datagrid-row-selected");
				if(!p.mulSelect) {
					var sr = _t.find("tr[datagrid-row-selected=selected]");
					sr.removeClass("tr_active");
					sr.removeClass("tr_hov");
					sr.find("input[type='checkbox'][datagrid-row-chk='chkrow']").attr("checked", false);
					sr.attr("datagrid-row-selected", "");
				}
				if (!!selected) {
					$(this).removeClass("tr_active");
					$(this).removeClass("tr_hov");
					$(this).find("input[type='checkbox'][datagrid-row-chk='chkrow']").attr("checked", false);
					$(this).attr("datagrid-row-selected", "");
				} else {
					$(this).addClass("tr_active");
					$(this).find("input[type='checkbox'][datagrid-row-chk='chkrow']").attr("checked", true);
					$(this).attr("datagrid-row-selected", "selected");
				}
				chgChkAll();
				p.onClickRow.call(this);
			});
			rows.dblclick(function(){
				p.onDblClickRow.call(this);
			})
			_t.find("input[type='checkbox'][datagrid-cell-chk='chkcell']").click(function(event) {
				if (event.target == this) {
					event.stopPropagation();
				}
			});
			_t.find("input[type='checkbox'][datagrid-cell-chk='chkcell']").change(function(event) {
				$(this).parents("tr").attr("datagrid-row-update", "y");
			});
			_t.find("tr:even").addClass("grey");
			//_t.find("tr[datagrid-row-add='y']").addClass("tryellow");
			var tb = $(t).attr("id") + "_title";
			$("#"+tb).find("#chkall").click(function() {
				if(!$(this).attr("checked")) {
					rows.each(function(){
						$(this).removeClass("tr_active");
						$(this).removeClass("tr_hov");
						$(this).find("input[type='checkbox'][datagrid-row-chk='chkrow']").attr("checked", false);
						$(this).attr("datagrid-row-selected", "");
					})
				} else {
					rows.each(function() {
						$(this).addClass("tr_active");
						$(this).find("input[type='checkbox'][datagrid-row-chk='chkrow']").attr("checked", true);
						$(this).attr("datagrid-row-selected", "selected");
					})
				}
			})
			function chgChkAll() {
				var chkAll = true;
				var chk = _t.find("input[type='checkbox'][datagrid-row-chk='chkrow']").each(function() {
					if (!$(this).attr("checked")) {
						chkAll = false;
						return false;
					}
				})
				$("#"+tb).find("#chkall").attr("checked", chkAll ? true : false);
			}
			p.lockHeight = _t.height();
		}, initPager : function(t, p) {
			var _t = this;
			
			var _pager = !!p.pager ? $(p.pager) : $("<div id='"+$(t).attr("id") + "_pager"+"'>");
			var currSt = p.page*p.limit-p.limit+1;
			var currEnd = (currSt + p.limit - 1) > p.total ? p.total : (currSt + p.limit - 1);
			var tt = currEnd - currSt + 1;
			var pg = Math.ceil(p.total/p.limit);
			var html = ["<a href='#' class='grid-page-start'>«</a><a href='#' class='grid-page-prev'>&lt;</a>"];
			html.push("<form><div class='grid-page-info' style='line-height: 20px;'>");
			html.push("<input type='text' value='"+p.page+"' class='grid-page-input' style='' id='currPage'>");
			html.push("共 <span id='totalPageInGrid'>"+pg+"</span> 页</div></form>");
			html.push("<a href='#' class='grid-page-next'>&gt;</a><a href='#' class='grid-page-end'>»</a>");
			html.push("<div class='grid-page-loading-done grid-page-loading' id='grid-page-loading'></div>");
			html.push("<div class='grid-page-viewing-records-info'>"+currSt+" - "+currEnd+"  共"+p.total+" 条</div>");
			_pager.empty();
			_pager.html(html.join(""));
			_pager.addClass("grid-page-toolbar");
			_pager.height("20px")
			_pager.show();
			if (!p.pager) {
				$(t).append(_pager);
			}
			if (!pg || pg === 1) {
				_pager.find("a.grid-page-start,a.grid-page-end,a.grid-page-prev,a.grid-page-next").attr("disabled", true);
			} else if (p.page == pg) {
				_pager.find("a.grid-page-end,a.grid-page-next").attr("disabled", true);
			} else if (p.page === 1) {
				_pager.find("a.grid-page-start,a.grid-page-prev").attr("disabled", true)
			}
			_pager.find("a.grid-page-start").click(function(){
				_pager.find("#currPage").val(1);
				chg(1);
			})
			_pager.find("a.grid-page-end").click(function(){
				_pager.find("#currPage").val(pg);
				chg(pg);
			})
			_pager.find("a.grid-page-prev").click(function(){
				var cp = p.page == 1 ? 1 : p.page - 1;
				_pager.find("#currPage").val(cp);
				chg(cp);
			})
			_pager.find("a.grid-page-next").click(function(){
				var cp = p.page == pg ? pg : p.page + 1;
				_pager.find("#currPage").val(cp);
				chg(cp);
			})
			_pager.find("#currPage").blur(function() {
				var cp = $(this).val();
				if (!!cp && cp.match(/\d+/g) != null) {
					cp = parseInt(cp);
					cp = cp > p.total ? p.total : cp;
					cp = cp <= 0 ? 1 : cp;
					_pager.find("#currPage").val(cp);
					chg(cp);
				} else {
					_pager.find("#currPage").val(p.page);
				}
			})
			function chg(current_page) {
				if (!!p.onPageChange && p.onPageChange($(t), p)) {
					p.page = current_page;
					_t.onLoad(t, p);
				}
			}
		}, adjustGrid : function(t, p, th) {
			$(t).css("border", "0px");
			var ftr = $(t).find("tr:first-child");
			var ftds = ftr.find("td[type='col']");
			$(t).css("marginTop", "0");
			if (p.height=='fixed') {
				var trh = 0; 
				/*var it = 0;
				if (p.data.length>0) {
					$(t).find("tr").each(function(i) {
						if (i < p.limit) 
							trh = trh + $(this).height();
						else 
							return false;
						it = i+1;
					})
				} else
					it = 0;
				if (it < p.limit) {
					trh = trh > p.colHeight*p.limit ? trh : p.colHeight*p.limit;
				}*/
				trh = p.colHeight*p.limit;
				$(t).parent().height(trh+2);
			}
			if (p.data.length>0) {
				$(th).find("th[type='col']").each(function(i) {
					if (i == p.colNames.length-1) {
						return;
					}
					var tdw = $(ftds[i]).width();
					if (!!p.colModel[i].width) {
						$(this).width(p.colModel[i].width);
						return;
					}
					$(this).width(tdw);
				});
			} else {
				$(t).find("td:first-child").css("lineHeight",$(t).parent().height()-2+"px");
				$(t).find("td:first-child").addClass("noticeword").css("padding", "0px");
			}
		}, onLoading : function(ld, t, p) {
			p.loadStatus = !!ld;
			var ldn = $(t).attr("id")+"_loading";
			if (ld) {
				$("#"+ldn).width($(t).width()).height($(t).parent().height()).css({
					top : $(t).offset().top,
					left : $(t).offset().left
				}).show();
				if (p.pager) 
					$(p.pager).find("#grid-page-loading").addClass("grid-page-loading");
			} else {
				$("#"+ldn).hide();
				if (p.pager) 
					$(p.pager).find("#grid-page-loading").removeClass("grid-page-loading");
			}
		}
	};
	$.fn.datagrid.defaults = $.extend({},{
		id : "",
		colHeight : 25,
		limit : 20,
		rowList : [10,20,30],
		hasTitle : false,
		data : [],
		tr_active : "tr_active",
		tr_hov : "tr_hov",
		colNames : [],
		colModel : [],
		mulSelect : false,
		search : true,
		pager : "",
		total : 0,
		totalRows : 0,
		page : 1,
		height : null,
		width : null,
		queryParm : {},
		tableClass : "",
		url : "",
		loadInPage : false,
		locData : true,
		showNum : false,
		onClickRow : function(){},
		onDblClickRow : function(){},
		onPageChange : function(){return true;},
		onPreGridInit : function(){},
		onPostGridInit : function(){},
		loadStatus : false,
		lockHeight : 0,
		loadingHtml : "<div></div>",
		loadingClass : "grid-loading"
	});
})(jQuery);